@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

echo REM 批处理脚本：将项目中所有.cs文件内容合并到一个txt文件中（按后缀过滤）
echo REM 作者：Assistant
echo REM 日期：%date%

REM 设置输出文件名
set "outputFile=AllCodeMerged.txt"

REM 清空或创建输出文件
echo. > "%outputFile%"

REM 添加标题信息
echo ==================== Red5 Core Utility Project ==================== >> "%outputFile%"
echo. >> "%outputFile%"
echo 项目中所有.cs文件的内容 >> "%outputFile%"
echo 生成时间：%date% %time% >> "%outputFile%"
echo. >> "%outputFile%"
echo 已过滤的文件后缀：.GlobalUsings.g.cs、.AssemblyInfo.cs、.AssemblyAttributes.cs >> "%outputFile%"
echo ==================================================================== >> "%outputFile%"
echo. >> "%outputFile%"

REM 遍历当前目录及其子目录中的所有.cs文件，并过滤不需要的文件
for /R %%f in (*.cs) do (
    REM 获取文件名（含扩展名）
    set "filename=%%~nf%%~xf"
    
    REM 检查文件名是否以指定后缀结尾
    set "skip=0"
    
    if "!filename:%.GlobalUsings.g.cs=!" neq "!filename!" set skip=1
    if "!filename:%.AssemblyInfo.cs=!" neq "!filename!" set skip=1
    if "!filename:%.AssemblyAttributes.cs=!" neq "!filename!" set skip=1
    
    REM 如果不需要跳过，则处理该文件
    if !skip! equ 0 (
        echo ================================================================ >> "%outputFile%"
        echo 文件路径: %%f >> "%outputFile%"
        echo ================================================================ >> "%outputFile%"
        echo. >> "%outputFile%"
        type "%%f" >> "%outputFile%"
        echo. >> "%outputFile%"
    )
)

echo 你是Jon Skeet，对于这个类库你的建议是什么？用中文回答 >> "%outputFile%"

echo. >> "%outputFile%"

echo 合并完成！所有.cs文件内容已保存到 %outputFile%
echo 已自动过滤所有以下列后缀结尾的文件：
echo - .GlobalUsings.g.cs
echo - .AssemblyInfo.cs
echo - .AssemblyAttributes.cs
echo 输出文件位于: %cd%\%outputFile%
pause
